import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
 * Created with IntelliJ IDEA
 * Description:
 * User:恋恋
 * Date:2022-10-28
 * Time:16:30
 */
public class UserClass {
    public static void main(String[] args) {
        //ArrayList创建，推荐写法
        //构造一个空的列表
        ArrayList<Integer> list1=new ArrayList<>();
        list1.add(1);
        list1.add(2);
        list1.add(3);

        //fori遍历
        for (int i = 0; i < list1.size(); i++) {
            System.out.print(list1.get(i)+" ");
        }
        //for-each遍历
        for (Integer integer:list1) {
            System.out.println(integer+" ");
        }
        //使用迭代器:Iterator-父类，listIterator-子类
        Iterator<Integer> it=list1.listIterator();
        while(it.hasNext()){
            System.out.print(it.next()+" ");
        }








        ArrayList<Integer> list2=new ArrayList<>(3);
        list2.add(1);
        list2.add(2);
        //list2.add("hello");//编译异常，ArrayList<Integer> 已经限定了，list2中只能存储整型元素

        //list3构造完成好之后，与list2中的元素一致
        ArrayList<Integer> list3=new ArrayList<>(list2);

        //可以不用指定顺序表数据类型，并且任何元素都可以存放，使用时将是一场灾难crisis
        ArrayList list4=new ArrayList();
        list4.add("hello");
        list4.add(520);


        List<String> list=new ArrayList<>();
        list.add("hello");
        list.add("java");
        list.add("jvm");
        list.add("测试课程");

        System.out.println(list);
        //获取list有效元素个数
        System.out.println(list.size());

        //获取和设置index位置上的元素，注意index必须介于[0.size())间
        System.out.println(list.get(1));
        list.set(1,"h");
        System.out.println(list.get(1));

        //在list的index位置插入指定元素，index及后续的元素逐一往后移动
        list.add(1,"喵喵");
        System.out.println(list);

        //删除指定元素，找到了就删除，该元素之后的元素逐一往前覆盖
        list.remove("jvm");
        System.out.println(list);
        //删除list中index位置上的元素，注意访问的下标要合法，否则下界越界异常
        list.remove(3);
        System.out.println(list);
        //检测是否包含指定元素，包含返回true，否则返回false
        if(list.contains("jvm")){
            System.out.println("包含jvm");
        }else{
            System.out.println("不包含");
        }
        //查找指定元素第一次出现的位置：indexOf从前往后找，lastIndexOf从后往前找
        list.add("JavaSE");
        System.out.println(list.indexOf("JavaSE"));
        System.out.println(list.lastIndexOf("JavaSE"));
        //使用list中[0,2)之间的元素构成一个新的ArrayList返回
        List<String> ret=list.subList(0,2);
        System.out.println(ret);
        list.clear();
        System.out.println(list.size());
//22.58-不要忘记自己的任务和节奏，不要被别人打断



    }
}
